package com.leoblog.domain;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import com.leoblog.domain.base.BaseDOM;

public class Entry extends BaseDOM {

	/**
	 * serial version id
	 */
	private static final long serialVersionUID = 7534185744500775165L;
	
	private String title;
	
	private String content;
	
	private String summary;
	
	private Date dateCreated;
	
	private int commentSize;
	    
	private int hits;
	    
	private String status;

	private Date dateModified;
	
	private User author;
	
	private WebSite webSite;
	
	private Category category;

	private Set<Tag> tags = new HashSet<Tag>();
	
	public Set<Tag> getTags() {
		return tags;
	}

	public void setTags(Set<Tag> tags) {
		this.tags = tags;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public String getSummary() {
		return summary;
	}

	public void setSummary(String summary) {
		this.summary = summary;
	}

	public Date getDateCreated() {
		return dateCreated;
	}

	public void setDateCreated(Date dateCreated) {
		this.dateCreated = dateCreated;
	}

	public int getCommentSize() {
		return commentSize;
	}

	public void setCommentSize(int commentSize) {
		this.commentSize = commentSize;
	}

	public int getHits() {
		return hits;
	}

	public void setHits(int hits) {
		this.hits = hits;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public Date getDateModified() {
		return dateModified;
	}

	public void setDateModified(Date dateModified) {
		this.dateModified = dateModified;
	}

	public User getAuthor() {
		return author;
	}

	public void setAuthor(User author) {
		this.author = author;
	}

	public WebSite getWebSite() {
		return webSite;
	}

	public void setWebSite(WebSite webSite) {
		this.webSite = webSite;
	}

	public Category getCategory() {
		return category;
	}

	public void setCategory(Category category) {
		this.category = category;
	}
	/**
	 * static inner class
	 * represent entry's status
	 */
	public static final class Status{
		/**
		 * published
		 */
		public static final String PUBLISHED = "published";
		/**
		 * draft
		 */
		public static final String DRAFT = "draft";
		
	}

}
